package com.hbnu.array;

import java.util.Scanner;

/**
 * 数据加密
 *  键盘录入数据，要求数据是6位的整数，现需要对数据进行加密，加密规则如下
 *  每位数字都加上5，然后除以10的余数代替该数字，再将第一位和第六位交换
 *  第二位和第五位交换，第三位和第四位交换，最后输出加密后的数据
 * @author kunge
 * @since 2025-9-7
 */
public class ArrayDemo04 {
    public static void main(String[] args) {
        //1.创建（获取）键盘输入对象
        Scanner scanner = new Scanner(System.in);

        //2.定义一个整型变量，用于存放数据
        System.out.print("请输入一个6位整数：");
        int num = scanner.nextInt();

        //3.定义一个整型数组，用于存放拆开后的6个数字
        int[] arr = new int[6];

        //4.将拆开后的六位数字存放于数组中
        //4.1从右往左取各位数字（推荐）
        int tempNum=num;
        for (int i = arr.length-1; i >=0; i--) {
            arr[i] = tempNum%10;
            tempNum/=10;
        }

//        4.2从左往右取各位数字（不推荐：必须确定数字位数）
//        int div=100000;
//        for (int i = 0; i < arr.length; i++) {
//            arr[i] = num/div%10;
//            div/=10;
//        }


        //5.对数组元素进行加5，除10取余运算
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (arr[i]+5) % 10;
        }

        //6.交换数组元素位置
        int temp;
        for (int i = 0; i < arr.length/2; i++) {
            temp = arr[i];
            arr[i] = arr[arr.length-i-1];
            arr[arr.length-i-1] = temp;
        }

        //7.输出加密后的数据
        System.out.print("加密后的数据为：");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
    }
}